#ifndef __GKUSART_H_
#define __GKUSART_H_
#include "usart.h" 

#define RECEIVELEN 1024
typedef struct
{
  UART_HandleTypeDef *huart;
	uint8_t  rx_flag:1;//1--收到啦中断的时候拉1  0--没收到&处理后请清0 
	uint8_t  tx_flag:1;//1--正忙着sending        0--闲着
	uint16_t rx_len;//接收的长度
	uint8_t  rxBuf[RECEIVELEN];//DMA每次接收的BUF
	uint16_t tx_len;//发送的长度 为了照顾BM77 它接收到这个长度的时候停止接收
  uint8_t status;
	void    (*Idle_callback)   (void *this);
}GK_USARTIDLE_TYPE ;	 

extern GK_USARTIDLE_TYPE GKU1;
extern GK_USARTIDLE_TYPE GKU3;

extern void GK_UsartReceive_IDLE(GK_USARTIDLE_TYPE *myuart);
extern uint8_t GK_usart_init(GK_USARTIDLE_TYPE *myuart,uint8_t usartid);
extern uint8_t GK_usart_TXRX(GK_USARTIDLE_TYPE  *myuart, uint8_t *TX ,uint16_t TXlen ,uint8_t *RX,uint16_t *RXlen);
#endif
